■ RS232C                                                                 

  ■ パソコンのシリアルポートはRS232C準拠と云われますがRS232C規格とはかなり異なるものとなっています。IBM
    が1981年に販売したIBM/PCのシリアルポートの規格として、 RS232C規格の一部を借用しこれをRS232C規格
    (準拠)とうたったため ”PCのシリアルインター フェース = RS232C規格”のようになってしまいました。 以下の
    ような点でRS232C規格とは違いがあります。
    ・ RS232C規格の端子には同期通信、調歩同期通信、2チャンネルの全二重通信がサポートされるべきである
      がPCのシリアル端子には1チャンネルの調歩同期通信全二重通信しかサポートされていない。
    ・ RS232C規格のコネクタはDサブ25ピンであるが、PCのシリアルコネクタはDサブ9ピンである。
    ・ PCのCOMポートにはRS232C規格としてサポートされるべき信号が一部サポートされていない
    ・ RS232C規格の最大伝送速度は20Kbpsであるが最近のPCのCOMポートの最大伝送速度は200Kbps以上
      が定格伝送速度となっている。

  ■ 現在のPCのCOMポートの正式規格名はEIA-574規格です。PCのCOMポート”RS232C準拠規格”とRS232C規格
    との混同を避けるためEIA(米国電子工業会)が1991年に規格として追認、制定した規格です。

  ■ RS232C規格はCCITT(国際電信電話諮問委員会)のV.24、V.28勧告にもとづきEIAが1969年に制定したもので
    EIA-232規格のことです。
    ・ RS232Cと云う名称は Recomended  Standard   232 Class に由来した通称のようです。
    ・ EIA-232規格はもともとデータ端末とデータ通信装置(モデム)との接続インターフェースに関する電気的特性、
     機械的特性、機能等を規定した規格です。
    
  
■ インターフェース電気的諸元
     RS232Cでは 論理0(スペース)が+3V〜+15Vと正電圧で、論理1(マーク)が-3V〜-15Vと 何故か一般の論理における場合と正負が逆に
    となっていますので注意が必要です。

項目 規格値 備考
 ドライバー側
 (出力側) 
無負荷最大出力電圧 ±25V     
負荷時最小出力電圧  ±5V〜±15V  ・負荷条件: 3KΩ 〜 7KΩ
・RS232Cレシーバー/ドライバーICのADM3202では TXから±9〜10Vが
出力されています。(→実際のADM3202のTX出力波形))
・私が使用しているデスクトップPC 2台(注1)の実測値は±約10Vです。
 ( → PC(マザーボードAX4B-533)のTX出力信号波形
・私が使用しているRS232C拡張基盤2枚(注2)の実測値は±約5Vです。
 ( → RS232C拡張拡張基盤RX-PCI160のTX出力信号波形
最大電流 500mA 負荷条件: 短絡時
最大スルーレート 30V/μsec      
 レシーバー側
 (入力側) 
入力抵抗 3KΩ 〜 7KΩ      
 入力スレッショルド電圧  ±3V 0(スペース): +3V 〜 +15V
1(マーク): -3V 〜 -15V
最大入力電圧 ±25V          
最大ケーブル長 15m     

(注1)マザーボード : AX4B-533(AOpen)、 55H-M(ECS)
(注2)RS232C拡張基盤 : REX-PCI160(ラトックシステム)SD-PE9901-2SL(Area)

  ■ PCのバイオスとCOMポート
   ・ PCでは16個の割り込み要求チャンネルIRQ(Interrupt ReQuest)が用意されています。レガシー(過去の遺産)となったI/Oもありますが
   いまでも基本的には下表にもどづきIRQ0〜RIQ15はバイオスにより管理されています。COM1、COM2ポートにはそれぞれIRQ4、IIRQ3が割
   あてられています。

M/S IRQ番号 用途
マスター IRQ0 システムタイマー
IRQ1 キーボード
IRQ2 IRQ9よりの呼び出し
IRQ3 シリアルポート(COM2)
IRQ4 シリアルポート(COM1)
IRQ5 パラレルポート(LPT2)
IRQ6 フロッピーディスク
IRQ7 パラレルポート(LPT1)
スレーブ IRQ8 リアルタイムクロック
IRQ9 未使用(IRQ2へ転送)
IRQ10 未使用
IRQ11 未使用
IRQ12 PS/2マウス
IRQ13 数値演算コプロセッサ
IRQ14 プライマリIDE
IRQ15 セカンダリIDE


  ・RS232Cインターフェースのデバイスが 減ってきたためCOMポートがマザーボード上についてはいるがメーカ出荷時にバイオスでDisableとなって
   いる(デバイスマネージャで表示されない)場合があるようです。この様な場合は、PC起動時Deleteボタンを押してバイオスを立ち上げCOMポートを
   EnableにするとCOMポートが使えるようになります。。
  ・ISAバスの時代と違ってPCIバスでは1つのIRQを複数のデバイスで使用可能・自動割り当てになっています。バイオス・OSががUSB、LAN等の
   割り込みも含め未使用IRQ及びレガシーの空きIRQをつかい割り当てを行っています。こんなことからあまり使われなくなったCOMポートを
   Disabkeにして出荷することがあるのでしょう。


  ■ PICの通信エラー
    PICの場合下記3つの通信エラーがあります。
    @ フレーミングエラー …… ストップピットが0になっている場合のエラー
    A オーバーランエラー…… 前のデータが取り出されないうちに次のデータが来てしまった場合のエラー
    B パリティエラー   …… パリティチェックで検出されたエラー



  ■ 実際の送受信波形
    下記に実際の波形を示します。 
     ・パルスはビットレベルでは、スタートビットのあと、データビットが下位ビットからb0→b1→b2 …… b6→b7と 上位ビットへの順番で
      送受信され、最後がストップビットとなります。 パリティビットが追加される場合はデータビットの後の追加となります。
     ・下記の波形では、データとデータの間はストップビットのあとウェィトなしですぐ次のデータのスタートビットが来ています。データとデータの
      間のアイドルパルス数や時間についてはRS232Cでは特に規定等はないようです。送信側のC言語のソースコードが同じでもパルスも
      あいてくるものもあります。送信モジュール、コンパイラ、ドライバーにより異なるようです。ウェートは送信側で、受信がオーバーラン
      エラーをおこさないようにコントロールする必要があります。

    下記はPCのTXからの波形とPICのRXの実測波形です。

受信文字
(16進数表示)
(2進数表示)
受信パルス実測波形(パリティなし)
上側:PICのRX端子波形
下側:PCのTX端子波形
A
0x41

(0b01000001)
B
0x42)
(0b01000010)
C
(0x43)
(0b01000011
AA
(0x41 + 0x41)
(0b01000001+
  0b01000001)

デジタルオシロ岩通 DS-5102


(参考)

  ・ 上記波形の測定プログラム(注): → VC++ プログラム
  ・ 上記波形の測定回路:  → 回路図のPDFファイル
 
      (注) データの A、B、C、AA を送信するPCのプログラム